<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图表联动（玫瑰图）</title>
    <script type="text/javascript" src="../static/js/echarts.min.js"></script>
    <script src="../static/js/jquery-3.4.1.min.js"></script>
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <!-- 可选的 Bootstrap 主题文件（一般不用引入） -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <style>
    *{
        margin:0px;
        padding:0px;
    }
    .mycss1{
        float:left;
        width:49%;
        border:1px solid #F00;
        height: 600px;
    }
    .mycss2{
        float:left;
        width:49%;
        border:1px solid #F00;
        height: 600px;
    }
    </style>
</head>
<body>
    <div id="main" class="mycss1" ></div>
    <div class="mycss2" >
    <table class="table table-bordered table-hover" id="table">
        <thead>
            <tr>
                <th>用户ID</th>
                <th>加权规则缴费金额</th>
            </tr>
        </thead>
        <tbody>
            <tr id="tr1">
                <td>{{ data[0][0] }}</td>
                <td>{{ data[0][1] }}</td>
            </tr>
            <tr id="tr2">
                <td>{{ data[1][0] }}</td>
                <td>{{ data[1][1] }}</td>
            </tr>
            <tr id="tr3">
                <td>{{ data[2][0] }}</td>
                <td>{{ data[2][1] }}</td>
            </tr>
            <tr id="tr4">
                <td>{{ data[3][0] }}</td>
                <td>{{ data[3][1] }}</td>
            <tr id="tr5">
                <td>{{ data[4][0] }}</td>
                <td>{{ data[4][1] }}</td>
            </tr>
        </tbody>
    </table>
    </div>

</body>
<script>
    var chartDom = document.getElementById('main');
    var myChart = echarts.init(chartDom);
    var option;
    option = {
      legend: {
        top: 'bottom'
      },
        // 鼠标悬停显示数据
       tooltip:{

       },
      toolbox: {
        show: true,
        feature: {
          mark: { show: true },
          dataView: { show: true, readOnly: false },
          restore: { show: true },
          saveAsImage: { show: true }
        }
      },
      series: [
        {
          name: '潜在高价值用户Top5',
          type: 'pie',
          radius: [50, 250],
          center: ['50%', '50%'],
          roseType: 'area',
          itemStyle: {
            borderRadius: 8
          },
          data: [
            { value: {{ data2[0] }}, name: {{ data1[0] }}},
            { value: {{ data2[1] }}, name: {{ data1[1] }}},
            { value: {{ data2[2] }}, name: {{ data1[2] }}},
            { value: {{ data2[3] }}, name: {{ data1[3] }}},
            { value: {{ data2[4] }}, name: {{ data1[4] }}},
          ]
        }
      ]
    };

    option && myChart.setOption(option);
</script>
<!--  图表联动 -->
<script>
    //鼠标悬浮在表格上，玫瑰图高亮！
            // 当鼠标落在tr时，显示浮动
            $("#table tbody").find("tr").on("mouseenter",function () {
                // 获得当前匹配元素的个数
                let row = $(this).prevAll().length;
                // 获得当前tr下td的名字
                let name = $("#table tbody").find("tr").eq(row).find("td").eq(0).text();
                // 设置浮动
                myChart.dispatchAction({ type: 'showTip',seriesIndex: 0, name:name});//选中高亮
            });
            // 当鼠标移开tr时候取消浮动
            $("#table tbody").find("tr").on("mouseleave",function () {
                // 获得当前匹配元素的个数
                let row = $(this).prevAll().length;
                // 获得当前tr下td的名字
                let name = $("#table tbody").find("tr").eq(row).find("td").eq(0).text();
                // 设置浮动
                myChart.dispatchAction({ type: 'hideTip', name:name});//选中高亮
            });
    //----------------------------------------------------------------------------------------
    //鼠标悬停玫瑰图上，表格高亮！
            myChart.on('mouseOver', function (params) {
                let trs=$("#table tbody").find("tr")
                let row = trs.prevAll().length; //4 这里获取的是该tr之前的行数，一共5行，如果是第5行则最多有4行
                for (i=0;i<=row;i++){
                    let name = $("#table tbody").find("tr").eq(i).find("td").eq(0).text();
                    if(name == params.name){
                        $("#table tbody").children().eq(i).css("background", "rgba(176, 196, 222,1)")
                    }
                }
            });

            myChart.on('mouseOut', function (params) {
                let trs=$("#table tbody").find("tr")
                let row = trs.prevAll().length;
                for (i=0;i<=row;i++){
                    let name = $("#table tbody").find("tr").eq(i).find("td").eq(0).text();
                    if(name == params.name){
                        $("#table tbody").children().eq(i).css("background", "rgba(176, 196, 222,0.1)")
                    }
                }
            });
</script>
</html>
